package com.csb.mapper;

import com.csb.pojo.Apply;
import com.csb.pojo.AssetInfo;
import com.csb.pojo.AssetTypesRate;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface AssetMapper {
    // 获取本页的固定资产信息
    List<AssetInfo> getAssetInfoWithPage(Map<String, Object> cond);

    // 获取本次查询的总资产数
    int getAssetCount(Map<String, Object> cond);

    // 添加信息前名称的验证
    int ifExistsAsId(String asId);

    // 添加资产信息
    int saveAssetInfo(AssetInfo assetInfo);

    // 根据资产内部编号,将资产信息设置为故障
    int delAssetInfo(AssetInfo assetInfo);

    // 根据资产内部编号,修改资产信息
    int modifyAssetInfo(AssetInfo assetInfo);

    // 根据资产内部编号,将资产信息批量设置为故障
    int batchDelAssetInfo(@Param("ids") String[] ids, @Param("AssetInfo") AssetInfo assetInfo);

    // 回填该资产的状态位
    void updateAsSetsAsState(@Param("asId") String asId, @Param("asState") int assetAsstateApplying);

    // 根据资产编号,回填资产的状态
    void updateAssetState(@Param("apply") Apply apply, @Param("asState") int assetAsstateUsing);

    // 将资产折旧
    int depreciation(@Param("asState") int assetAsstateWorthless);

    // 获取不可用资产一览
    List<Apply> getWorthLessAssetList(@Param("asState") int assetAsstateWorthless, @Param("isBreak") int assetIsBreakYes);

    // 获取资产占比
    List<AssetTypesRate> getAssetTypesRate();

    // 维修资产
    boolean maintainAssetInfo(AssetInfo assetInfo);
    // 检查员工是否还有使用的资产
    int userUseAssetCount(String account);

    List<AssetInfo> getAssetInfo(String account);
}
